package com.ftg.learn.pattern.factory;


/**
 * @author kangjx
 * @createTime 2022/8/8
 */
public class AnimalFactory {

    /**
     * 工厂
     * @return
     */
//    public static IAnimal getAnimal(AnimalType type){
//        if(type == AnimalType.lion){
//            return new Lion();
//        }
//
//        if(type == AnimalType.wolf){
//            return new Wolf();
//        }
//
//        if(type == AnimalType.cat){
//            return new Cat();
//        }
//        return null;
//    }


//    public static IAnimal getAnimal(IAnimal animal){
//        try {
//            return animal.getClass().newInstance();
//        } catch (InstantiationException e) {
//            e.printStackTrace();
//        } catch (IllegalAccessException e) {
//            e.printStackTrace();
//        }
//        return null;
//    }

    public static IAnimal getAnimal(Class animal){
        try {
            return (IAnimal)animal.newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
    }

//    /**
//     * 工厂
//     * @return
//     */
//    public static IAnimal getAnimal(String type){
//        if(type.equals("lion")){
//            return new Lion();
//        }
//
//        if(type.equals("wolf")){
//            return new Wolf();
//        }
//        return null;
//    }

}
